home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
TPUG - Toronto PET Users Group
/
TPUG Users Group CD
/
TPUG Users Group CD.iso
/
CRS
/
crs66.d81
/
pg66-76.arc
/
PAGE66-76
Wrap
Text File
|
2009-10-10
|
30KB
|
727 lines
─EVICE ─RIVERS 2-1
╔NPUT ─RIVERS
╔NPUT DRIVERS EXIST IN MEMORY FROM $╞┼80 TO $╞╞╞9. ╘HEY DO
NOT HAVE A START ADDRESS SINCE THEY ARE NOT EXECUTABLE PROGRAMS.
╘HE DEFAULT INPUT DRIVER (╩╧┘╙╘╔├╦) IS BUILT INTO THE ╟┼╧╙
╦┼╥╬┴╠; ╟┼╧╙ WILL ALWAYS BOOT UP WITH THE JOYSTICK AS THE INPUT
DEVICE. ╘HE USER MUST SELECT ANOTHER ONE IF IT IS SO DESIRED.
╘HEY HAVE THREE ENTRY POINTS IN THE VERY BEGINNING. ╘HESE ENTRY
POINTS ARE A JUMP TABLE FROM $╞┼80-$╞┼88.
╘HE FIRST ENTRY POINT AT $╞┼80 IS THE MASTER RESET VECTOR.
╘HIS ROUTINE MUST SET THE MOUSE SPEED (╠OCATION $8507) TO ZERO,
AS WELL AS RESET THE MOUSE'S POSITION TO 0,0 (╠OCATIONS $3┴-$3├).
╔T MUST ALSO CLEAR THE DIRECTION BYTE (╠OCATION $8506).
╘HE SECOND VECTOR MUST RESET THE SPEED TO ZERO (╠OCATION
$8507).
╘HE THIRD VECTOR ACTUALLY PERFORMS THE INPUT. ╔T MUST ALSO
MODIFY THE APPROPRIATE FLAGS, ADJUST THE MOUSE'S SPEED AND
POSITION.
╘HE FOLLOWING IS A SMALL MEMORY MAP OF LOCATIONS OF INTEREST
TO INPUT DRIVERS:
$30 ═OUSE CONTROL FLAG
┬IT 7 - ═OUSE IS VISIBLE, DO NOT MODIFY THE MOUSE'S
POSITION IF IT IS NOT VISIBLE.
$39 ╔NPUT STATUS FLAG
┬IT 7 - ╘HERE IS DATA IN THE KEYBOARD QUEUE, THIS IS
NOT USED BY THE INPUT DRIVER.
┬IT 6 - ═OUSE HAS CHANGED DIRECTION.
┬IT 5 - ┬UTTON STATUS HAS CHANGED, EITHER THE BUTTON
HAS BEEN RELEASED OR PUSHED SINCE LAST CHECKED.
$3┴-$3┬ ═OUSE'S ╪ POSITION (0-319), RANGE CHECKING IS NOT
NECESSARY.
$3├ ═OUSE'S ┘ POSITION (0-199), RANGE CHECKING IS NOT
NECESSARY.
$8501 ═OUSE'S MAXIMUM SPEED.
$8502 ═OUSE'S MINIMUM SPEED.
$8503 ┴CCELERATION FACTOR; ADDED OR SUBTRACTED EACH TIME THE
INPUT DRIVE IS SCANNED AND THE DIRECTION HAS NOT
CHANGED.
$8505 ┬UTTON STATUS: $00-PRESSED, $80-NOT PRESSED.
$8506 ─IRECTION; $╞╞ IF NO DIRECTION IS SPECIFIED; OTHERWISE
A NUMBER FROM 0 TO 7:
3 2 1
* + *
4 -- * -- 0
* + *
5 6 7
╘HIS LOCATION IS NEEDED BY THE SCROLL FEATURE FOR
╟┼╧PAINT. ╔F NOT USED, FOR EXAMPLE BY A ╦OALAPAD, THIS
FEATURE OF ╟┼╧PAINT WILL NOT WORK, BUT NOTHING ELSE
WILL BE AFFECTED.
$8507 ═OUSE'S CURRENT SPEED.
─EVICE ─RIVERS 2-2
╨RINTER ─RIVERS
╨RINTER DRIVERS EXIST IN MEMORY FROM $7900-$7╞╞╞. ╘HIS
OVERLAPS PART OF SCREEN 2. ╨RINTER DRIVERS ARE ONLY MEMORY
RESIDENT WHEN THEY ARE IN USE. ╟┼╧╙ LOADS THE FIRST PRINTER
DRIVER THAT IT CAN FIND ON THE DISK, WHENEVER IT NEEDS TO PRINT
SOMETHING. ╘O MAKE A PARTICULAR PRINTER DRIVER ALWAYS BE THE ONE
FOUND, ALL THAT MUST BE DONE IS TO PLACE IT AHEAD OF ALL THE
OTHER PRINTER DRIVERS IN THE DIRECTORY. ╘HERE ARE FIVE ENTRY
POINTS TO A PRINTER DRIVER. ╘HESE FORM A JUMP TABLE FROM $7900-
$790┼.
╘HE FIRST ENTRY POINT, AT $7900, IS THE MASTER RESET. ╘HIS
ROUTINE MUST INITIALIZE ANY GLOBAL VARIABLES THAT NEED TO BE SET.
╘HIS ROUTINE IS CALLED ONCE WHEN THE DRIVER IS LOADED. ╧NLY THE
═╨╙-1000 DRIVER USES THIS ROUTINE. ┴LL THE OTHERS SIMPLY RETURN
WITHOUT DOING ANYTHING.
╘HE SECOND ENTRY POINT, AT $7903, IS THE PRINTER
INITIALIZATION. ╘HIS ROUTINE IS CALLED JUST PRIOR TO PRINTING AN
IMAGE. ╘HE ╪ REGISTER MUST BE SET TO AN ERROR CODE IF THE PRINTER
IS NOT AVAILABLE. ╘HIS ERROR CODE IS THE ├64'S ╦┼╥╬┴╠ STATUS BYTE
AT LOCATION $90. ╘HIS ROUTINE MUST INITIALIZE ANY TEMPORARY
VARIABLES USED BY THE DRIVER.
╘HE THIRD ENTRY POINT, AT $7906, ACTUALLY PERFORMS THE
PRINTING OF A LINE. ╠OCATIONS $02-$03 POINT TO THE BIT IMAGE
GRAPHIC DATA FOR THE LINE (640 PIXELS, 8 BITS HIGH, 640 BYTES).
╠OCATIONS $04-$05 POINT TO A BUFFER AREA FREE FOR USE BY THE
DRIVER IF IT NEEDS IT. ╘HIS IS MAINLY TO GIVE PRINTERS WHICH ONLY
PRINT 7 PIXELS AT A TIME A PLACE TO ACCUMULATE THE EXTRA BITS.
╠OCATIONS $06-$07 POINT TO THE COLOR DATA FOR THE LINE. ╘HIS IS
ONLY FOR THE BENEFIT OF COLOR PRINTERS. ╘HE PRINTER DRIVER MUST
NOT MODIFIFY ANY OF THESE POINTERS.
╘HE FOURTH ENTRY POINT, AT $7909, CLOSES THE PRINTER. ╘HIS
ROUTINE IS CALLED WHEN THE IMAGE IS FINISHED. ╘HIS ALLOWS 7 BIT
PRINTERS TO PRINT THE CONTENTS OF THEIR BUFFERS. ╘HIS IS ALSO TO
GIVE THE PRINTER DRIVER A CHANCE TO PRINT A TOP OF FORM
CHARACTER.
╘HE FIFTH ENTRY POINT, AT $790├, RETURNS THE NUMBER OF
CHARACTER COLUMNS THAT THE PRINTER CAN PRINT IN THE ╪ REGISTER.
╘HE MAXIMUM NUMBER OF LINES PER PAGE IS RETURNED IN THE ┘
REGISTER. ╘HE ACCUMULATOR IS LOADED WITH A ZERO. ╘HIS GIVES
APPLICATIONS THE ABILITY TO COMPUTE NECESSARY BUFFER SIZES.
╘YPICAL VALUES ARE 80 COLUMNS BY 90 LINES OR 60 COLUMNS BY 90
LINES.
╞INALLY, THE PRINTER DRIVER MUST ALSO INCLUDE ITS NAME AS A
STRING AT LOCATION $790╞. ╘HIS NAME MUST BE THE SAME AS THE FILE
NAME. ╟┼╧WRITE AND ╟┼╧PAINT WILL NOT SEE THE DRIVER IF THE FILE
NAME AND THIS TEXT STRING ARE NOT THE SAME. ─┼╙╦╘╧╨ DOES NOT
CARE.
╞ILE ╞ORMATS 3-1
╓╠╔╥ ╞ILE ╙TRUCTURE
┴ ╓╠╔╥ FILE IS A TREE STRUCTURED FILE. ╘HE DIRECTORY POINTS
TO A SINGLE SECTOR CALLED THE ╓╠╔╥ SECTOR. ╘HIS SECTOR IS A LIST
OF THE INITIAL TRACKS AND SECTORS OF EACH OF ITS BRANCHES (OR
CHAINS). ╔F THE BRANCH ADDRESS IS TRACK $00 SECTOR $╞╞, THEN THAT
BRANCH DOES NOT EXIST AND IS NOT USED. ╔T IS A PLACE HOLDER. ┴
BRANCH ADDRESS OF TRACK $00 SECTOR $00 SPECIFIES THE END OF THE
SECTOR. ╘HIS IS USED BY THE ╓╧╨┼╬ TO COUNT THE NUMBER OF
BRANCHES. ╔T IS POSSIBLE NOT TO HAVE THIS END MARKER. ╘HAT IS THE
CASE WHEN THERE ARE 127 BRANCHES. ╘HIS LIMIT OF 127 BRANCHES
EXPLAINS MANY OF ╟┼╧╙'S LIMITS, IE. 127 NOTE PAD PAGES, 127
PICTURES IN A PHOTO ALBUM, 64 PAGES AND 63 PICTURES IN A ╟┼╧WRITE
FILE, ETC. ┼ACH BRANCH IS THE EQUIVALENT OF A NORMAL FILE, IE.
EACH SECTOR POINTS TO THE NEXT WITH THE FIRST TWO BYTES.
╞ONT ╞ILE ╞ORMAT
╞ONT FILES ARE ╓╠╔╥ FILES; THE CHAIN NUMBER (0-126) IS THE
POINT SIZE. ╟┼╧╙ LIMITS A FONT TO A POINT SIZE OF 48. ╘HIS IS
PROBABLY DUE TO MEMORY LIMITATIONS FOR STORING THE FONT.
╬ONEXISTANT POINT SIZES HAVE ╓╠╔╥ CHAIN ADDRESSES OF $00,$╞╞.
╞ONT FILES ARE IDENTIFIED BY A UNIQUE ╔─ NUMBER WHICH IS
STORED IN THE FILE'S INFO SECTOR AT OFFSET 130. ╘HE INFO SECTOR
CONTAINS A WORD IDENTIFIER FOR EACH POINT SIZE IN THE FONT. ╘HESE
IDENTIFIERS HAVE THE FORM: ╔─# * 8 + POINT SIZE. ╘HESE ╔─ WORDS
ARE USED BY ╟┼╧WRITE AND ╟┼╧PAINT.
╞ONT FILE CHAIN FORMAT:
$00 ╬UMBER OF PIXELS MINUS 1 ABOVE THE UNDERLINE. ╘HIS IS
THE LINE OF PRINT.
$01-$02 ╬UMBER OF BYTES IN THE BIT STREAM.
$03 ╨OINT SIZE, CHARACTER HEIGHT IN PIXELS.
$04-$05 ╔NDEX FROM BEGINNING OF FONT TO TABLE OF BIT STREAM
INDICES. ╒SUALLY $0008.
$06-$07 ╔NDEX FROM BEGINNING OF FONT TO FIRST BIT STREAM.
$08-??? ╘ABLE OF WORDS WHICH ARE INDICES INTO THE BIT STREAMS;
ONE FOR EACH CHARACTER FROM SPACE (32) TO THE TILDA
(126). ╘HERE IS ALSO AN EXTRA INDEX ON THE END. ╘HIS
EXTRA INDEX IS NEEDED BECAUSE THE DIFFERENCE BETWEEN A
CHARACTER'S INDEX AND THE NEXT CHARACTER'S INDEX IS THE
WIDTH OF THE CHARACTER IN PIXELS.
???-??? ╨OINTED TO BY $06-$07. ╘HE FONT IS STORED AS SEVERAL
BIT STREAMS, ONE FOR EACH LINE OF PIXELS. ╘HE POINT
SIZE IS THE NUMBER OF BIT STREAMS. ┴LL THE CHARACTER
IMAGES ARE STORED IN THE BIT STREAM. ╘HE ╟┼╧╙ ╦┼╥╬┴╠
HAS SOME VERY SOPHISTICATED BIT MANIPULATION ROUTINES
FOR ACCESSING ANY GIVEN CHARACTER.
╞ILE ╞ORMATS 3-2
╬OTES ╞ILE ╞ORMAT
╘HE ╬OTES FILE CREATED BY THE ╬OTEPAD DESK ACCESSORY HAS A
╓╠╔╥ FILE STRUCTURE. ┼ACH BRANCH IS A SINGLE SECTOR WHICH
COMPRISES A PAGE OF THE NOTEPAD. ╘HIS SETS THE NOTEPAD'S LIMITS
TO 127 PAGES OF 253 CHARACTERS. 127 PAGES BECAUSE OF THE LIMIT TO
THE NUMBER OF ╓╠╔╥ CHAINS, AND 253 CHARACTERS BECAUSE A SECTOR
HOLDS 254 DATA BYTES (2 BYTES FOR THE NEXT TRACK AND SECTOR LINK)
AND THE LAST CHARACTER MUST BE A ZERO TO TERMINATE TO TEXT.
╨HOTO ╙CRAP ╞ILE
╘HE ╨HOTO ╙CRAP FILE IS A CODED GRAPHICS IMAGE IN A
SEQUENTIALLY STRUCTURED FILE. ╘HE FIRST BYTE IS THE NUMBER OF
BYTES WIDE THE IMAGE IS (ONE EIGTH OF THE WIDTH IN PIXELS).
╘HIS MEANS THAT PHOTO SCRAPS ARE ALWAYS EVEN MULTIPLES OF EIGHT
PIXELS WIDE. ╘HE SECOND AND THIRD BYTE FORM A WORD WHICH IS THE
NUMBER OF PIXELS HIGH THE IMAGE IS. ╞OLLOWING THESE THREE BYTES
IS THE GRAPHICS IMAGE, CODED IN THE SAME FORMAT AS A CLICK BOX
(SUITABLE FOR ─╥┴╫ OR ─╥┴╫2). ╘HIS FORMAT CONSISTS OF A CODE BYTE
FOLLOWED BY 1 OR MORE DATA BYTES. ╘HE CODE BYTES ARE CLASSIFIED
INTO THE FOLLOWING THREE BASIC TYPES.
1) ├ODE BYTES LESS THAN 128 MEAN THAT THE FOLLOWING BYTE IS
TO BE REPEATED THAT MANY TIMES.
2) ├ODE BYTES RANGING FROM 128 TO 219 MEAN THAT IF 128 IS
SUBTRACTED FROM THE CODE BYTE THEN THE RESULT IS THE
NUMBER OF DATA BYTES THAT FOLLOW.
3) ├ODE BYTES RANGING FROM 220 TO 255 ARE SPECIAL. ╞IRST 219
IS SUBTRACTED FROM THE CODE BYTE, THE RESULT IS THE
NUMBER OF BYTES IN THE PATTERN THAT WILL FOLLOW.
╞OLLOWING THIS CODE BYTE IS A REPETITION COUNT FOR THE
PATTERN. ╞OLLOWING THIS ARE THE BYTES THAT CONSTITUTE THE
PATTERN. ╘HESE COULD INCLUDE EITHER OF THE FIRST TWO CODE
TYPES.
╙INCE GRAPHIC IMAGES CAN BE IN COLOR, THE COLOR DATA FOLLOWS THE
GRAPHIC IMAGE DATA. ╘HE COLOR DATA IS CODED IN THE SAME WAY AS
THE GRAPHIC DATA; HOWEVER, EACH BYTE OF COLOR DATA IS THE COLOR
FOR A BLOCK OF 8 BY 8 PIXELS (A NORMAL CHARACTER SPACE). ╘HIS IS
THE REASON THAT ╟┼╧PAINT MAKES PHOTO SCRAPS A MULTIPLE OF 8
PIXELS HIGH AND WIDE.
╘EXT ╙CRAP ╞ILE
╘EXT SCRAPS ARE SEQUENTIALLY STRUCTURED FILES. ╘HE FIRST TWO
BYTES OF WHICH, FORM A WORD WHICH CONTAINS THE NUMBER OF BYTES IN
THE SCRAP. ╞OLLOWING THIS ARE TEXT SEGMENTS IN THE SAME FORMAT AS
╟┼╧WRITE FILES, IE. 4 CODE BYTES FOLLOWED BY A ZERO BYTE
TERMINATED STRING OF TEXT. ╙EE THE ╟┼╧WRITE ╞ILE FORMAT FOR MORE
INFORMATION.
╞ILE ╞ORMATS 3-3
╨HOTO AND ╘EXT ┴LBUM ╞ILES
┴LBUM FILES ARE ╓╠╔╥ STRUCTURED FILES, WITH EACH CHAIN
CONTAINING AN INDIVIDUAL PHOTO SCRAP OR TEXT SCRAP.
╟┼╧WRITE ╞ILE ╞ORMAT
╟┼╧WRITE FILES ARE ╓╠╔╥ STRUCTURED FILES. ╘HE FIRST 64
BRANCHES ARE THE 64 PAGES ALLOWED IN THE FILE. ╘HE LAST 63
BRANCHES ARE PHOTO SCRAPS, IF THERE ARE ANY PRESENT IN THE
DOCUMENT. ╙EE THE SECTION ON ╨HOTO ╙CRAP ╞ILES AND ╨HOTO ┴LBUMS
FOR MORE INFORMATION CONCERNING THE PHOTOS.
╘HE FIRST TWO BYTES OF EACH PAGE FORM A WORD WHICH IS THE
LEFT MARGIN'S POSITION IN PIXELS. ╘HE NEXT TWO BYTES ARE THE
RIGHT MARGIN'S POSITION. ╘HE FIFTH THROUGH THE SIXTEENTH BYTES
FORM 6 WORDS WHICH ARE THE TAB STOP POSITIONS, ALSO IN PIXELS.
╘HE TEXT WHICH FOLLOWS IS STORED IN SEGMENTS. ┼ACH SEGMENT STARTS
WITH 4 CODE BYTES. ╘HE FIRST BYTE IS A $17, IF THIS IS A TEXT
SEGMENT (MORE LATER). ╘HE NEXT TWO BYTES ARE THE FONT ╔─ (CODED
FORM WHICH INCLUDES POINT SIZE; SEE ╔NFO ╙ECTOR LOCATIONS $80-
$9╞). ╘HE FOURTH BYTE IS THE STYLE FOR THE SEGMENT; EACH BIT
DESIGNATING AN ATTRIBUTE:
BIT 7 ╒NDERLINE
BIT 6 ┬OLD
BIT 5 ╥EVERSED, ╬OT USED IN ╟┼╧WRITE FILES
BIT 4 ╔TALICS
BIT 3 ╧UTLINE
╞OLLOWING THE FOUR CODE BYTES IS THE TEXT STRING WHICH HAS A ZERO
BYTE TERMINATOR. ╔F THE INITIAL CODE BYTE IS A $10, THEN THIS
SEGMENT IS NOT A TEXT SEGMENT, IT IS A PHOTO SEGMENT. ╨HOTO
SEGMENTS HAVE FIVE CODE BYTES AND NO DATA SECTION. ╘HE SECOND
BYTE IS THE WIDTH OF THE IMAGE IN BYTES. ╘HE THIRD AND FOURTH
BYTES DESIGNATE THE IMAGE'S HEIGHT IN PIXELS. ╨HOTO SEGMENTS HAVE
AN EXTRA CODE BYTE WHICH IS THE ╓╠╔╥ CHAIN NUMBER FOR THE IMAGE.
╘HIS COULD ALLOW A DOCUMENT TO HAVE 63 DIFFERENT IMAGES BUT USE
THE SAME IMAGE SEVERAL TIMES WITHOUT STORING IT SEVERAL TIMES.
╞ILE ╞ORMATS 3-4
╟┼╧PAINT ╞ILE ╞ORMAT
╟┼╧PAINT FILES ARE ╓╠╔╥ STRUCTURED FILES. ┼ACH BRANCH
REPRESENTS 2 LINES OF THE PICTURE. ╘HE DATA IN THE BRANCHES IS
STORED IN A CODED FORM THAT IS DIFFERENT FROM PHOTO SCRAPS AND
CLICK BOXES. ╞IRST OF ALL, CONSECUTIVE BYTES DO NOT FORM A
HORIZONTAL LINE. ╘HE BYTES ARE IN THE SAME SEQUENCE AS THE
├OMMODORE STORES THEM ON THE HIRES SCREEN. ┼IGHT CONSECUTIVE
BYTES FILL A CHARACTER POSITION. ┼VERY EIGHTH BYTE IS ON THE SAME
HORIZONTAL LINE. ╘HE DATA IS STORED IN A CODED FORM TO CONSERVE
DISK STORAGE. ╘HE CODING IS SIMPLY A CODE BYTE FOLLOWED BY SOME
DATA. ├ODE BYTES FALL INTO ONE OF THE FOLLOWING THREE CATAGORIES:
1) ├ODE BYTES LESS THAN 64 DETERMINE THE NUMBER OF
INDIVIDUAL BYTES THAT FOLLOW.
2) ├ODE BYTES RANGING FROM 64 TO 127 ARE USED FOR FILL
PATTERNS. ╘HE LEAST SIGNIFICANT 6 BITS DETERMINE HOW MANY
CHARACTER POSITIONS ARE TO BE FILLED. ╘HIS CODE BYTE IS
FOLLOWED BY EIGHT BYTES WHICH DETERMINE THE FILL PATTERN.
3) ├ODE BYTES GREATER THAN 127 ARE 128 MORE THAN THE NUMBER
OF TIMES TO REPEAT THE BYTE THAT FOLLOWS THE CODE BYTE.
╘HIS CODING SCHEME IS USED TO FIRST SPECIFY THE 1280 BYTES THAT
FORM THE TWO LINES OF THE PICTURE. ╘HIS IS FOLLOWED BY THE 160
BYTES WHICH FORM THE COLOR DATA FOR THE TWO LINES.
─IRECTORY ╙TRUCTURE 4-1
╟┼╧╙ ─IRECTORY ┼NTRY ╞ORMAT
┬YTE# ─ESCRIPTION
$00 ─╧╙ FILE TYPE
┬IT 7 ╞ILE CLOSED PROPERLY.
┬IT 6 ╞ILE IS WRITE PROTECTED.
┬ITS 0-2 ╞ILE TYPE
0 ─┼╠
1 ╙┼╤
2 ╨╥╟
3 ╒╙╥
4 ╥┼╠ (╬OT PERMITTED UNDER ╟┼╧╙)
$01 ╘RACK NUMBER OF FIRST SECTOR.
$02 ╙ECTOR NUMBER OF FIRST SECTOR.
$03-$12 ╞ILE NAME.
$13 ╘RACK NUMBER FOR INFO SECTOR.
$14 ╙ECTOR NUMBER FOR INFO SECTOR.
$15 ╞ILE STRUCTURE.
0 ╙EQUENTIAL STRUCTURE.
1 ╓╠╔╥ FORMAT
$16 ╟┼╧╙ FILE TYPE.
0 ╬ON-╟┼╧╙ FILE.
1 ┬┴╙╔├ ╨ROGRAM.
2 ┴SSEMBLY PROGRAM.
3 ─ATA FILE.
4 ╙YSTEM FILE.
5 ─ESK ┴CCESSORY.
6 ┴PPLICATION.
7 ┴PPLICATION ─ATA.
8 ╞ONT FILE.
9 ╨RINTER DRIVER.
10 ╔NPUT DRIVER.
╘HE NEXT FEW BYTES DEFINE THE TIME AND DATE OF THE FILE'S
CREATION.
$17 ┘EAR.
$18 ═ONTH.
$19 ─AY.
$1┴ ╚OUR.
$1┬ ═INUTE.
$1├-$1─ ╞ILE SIZE IN BLOCKS (INCLUDING INFO SECTOR).
─IRECTORY ╙TRUCTURE 4-2
─IRECTORY ╚EADER (╘RACK 18 SECTOR 0)
$00 ╘RACK OF FIRST DIRECTORY SECTOR.
$01 ╙ECTOR OF FIRST DIRECTORY SECTOR.
$02 $41, ┴╙├╔╔ '┴' INDICATING 4040 FORMAT.
$03 $2┴, ─╧╙ VERSION.
$04-$8╞ ┬LOCK ┴VAILABILITY ═AP, ┬┴═, 35 TRACKS, 4 BYTES EACH.
╞IRST BYTE HAS NUMBER OF SECTORS FREE ON THAT TRACK.
╘HE OTHER THREE BYTES ARE A BIT STREAM. ┬IT ZERO OF THE
FIRST OF THE THREE BYTES IS SECTOR 0. ╔F THE BIT IS
SET, THEN THE BLOCK IS FREE.
$90-$9╞ ─ISK NAME PADDED WITH SHIFTED SPACES ($┴0).
$┴0-$┴1 ╘WO EXTRA CHARACTERS FOR DISK NAME.
$┴2-$┴3 ─ISK ╔─.
$┴4 ╙HIFTED SPACE ($┴0).
$┴5-$┴6 ┴╙├╔╔ '2┴' FOR ─╧╙ VERSION.
$┴7-$┴┴ ╙HIFTED SPACES ($┴0).
$┴┬ ╘RACK FOR ─┼╙╦╘╧╨'S BUFFER.
$┴├ ╙ECTOR FOR ─┼╙╦╘╧╨'S BUFFER.
$┴─-$┬├ ┴╙├╔╔ '╟┼╧╙ FORMAT ╓1.1', ONLY THE FIRST 11 BYTES ARE
USED TO CHECK FOR ╟┼╧╙ FORMAT.
$┬─-$╞╞ ╞ILLED WITH ZEROES.
╔NFORMATION ╙ECTOR ╞ORMAT 5-1
╔NFORMATION ╙ECTOR
┬YTE # ─ESCRIPTION
$00 $00, TRACK LINK IS ZERO BECAUSE THERE IS ONLY ONE
SECTOR.
$01 $╞╞, NUMBER OF BYTES IN THIS SECTOR.
$02-$04 $03, $15, $┬╞, ╔NFORMATION SECTOR IDENTIFICATION BYTES.
$05-$43 ╔CON IMAGE IN SPRITE FORMAT.
$44 ─╧╙ FILE TYPE.
$45 ╟┼╧╙ FILE TYPE.
$46 ╞ILE STRUCTURE, 0 FOR SEQUENTIAL, 1 FOR ╓╠╔╥.
$47-$48 ╠OAD ADDRESS.
$49-$4┴ ┼ND OF LOAD ADDRESS.
$4┬-$4├ ╙TART OF EXECUTION ADDRESS FOR PROGRAM; UNUSED
OTHERWISE.
$4─-$60 ├LASS OF FILE; ZERO BYTE TERMINATED.
$61-$74 ┴UTHOR OF FILE; ZERO BYTE TERMINATED. ╘HE FOLLOWING
╟┼╧╙ FILE TYPES HAVE AUTHORS:
1 ┬┴╙╔├ ╨ROGRAM 6 ┴PPLICATION
2 ┴SSEMBLY ╨ROGRAM 9 ╨RINTER DRIVER
5 ─ESK ┴CCESSORY 10 ╔NPUT ─RIVER
$75-$88 ╞OR ┴PPLICATION ─ATA FILES (AND ─ATA FILES?), THIS IS
THE CLASS OF THE FILE THAT CREATED THIS FILE.
$80-$81 ╞OR FONT FILES ONLY, THIS IS THE ╔─ NUMBER FOR THE
FONT. ╘HIS IS HOW ╟┼╧╙ DISTINGUISHES BETWEEN FONTS FOR
╟┼╧WRITE AND ╟┼╧PAINT WITHOUT ACTUALLY STORING THE FONT
NAME. ┼ACH FONT HAS ITS OWN UNIQUE ╔─ NUMBER. ╘HE KNOWN
FONTS HAVE THE FOLLOWING ╔─ NUMBERS:
0 ┬╙╫ 13 ╘ILDEN
1 ╒NIVERSITY 14 ┼VANS
2 ├ALIFORNIA 15 ─URANT
3 ╥OMA 16 ╘ELEGRAPH
4 ─WINELLE 17 ╙UPERB
5 ├ORY 18 ┬OWDITCH
6 ╘OLMAN 19 ╧RMOND
7 ┬UBBLE 20 ┼LMWOOD
8 ╞ONTKNOX 21 ╚EARST
9 ╚ARMON 21 ┬RENNENS (┬╒╟)
10 ═YKONOS 23 ├HANNING
11 ┬OALT 24 ╨UTNAM
12 ╙TADIUM 25 ╠E├ONTE
╘HERE IS A BUG ON ╞ONT╨ACK ╔, THE ┬RENNENS FONT SHOULD
HAVE AN ╔─ NUMBER OF 22 (OR ╚EARST SHOULD). ╙INCE THESE
TWO FONTS HAVE THE SAME ╔─ NUMBER, ONLY ONE OF THEM CAN
BE USED IN ANY FILE, INCLUDING IN ╟┼╧PAINT. ╫HEN ╟┼╧╙
LOOKS FOR A FONT AFTER THE USER HAS SELECTED IT, IT
USES THE ╔─ BYTE TO FIND IT. ╔F THE ╔─ BYTES ARE THE
SAME, THEN THE FIRST FILE ENCOUNTERED IS USED.
$82-$9╞ ╞OR FONT FILES ONLY; ╔─ WORDS FOR EACH POINT SIZE.
╘HESE ARE CODED AS: 64 * ╔─# + POINT SIZE.
$┴0-$╞╞ ╘EXT FIELD FOR THE FILE; ZERO BYTE TERMINATED.
═EMORY ═AP 6-1
$01 ╥6510 ┬UILT-IN 6510 ╔/╧ PORT, BIT ORIENTED
┬IT 0 - 0=╥┴═, 1=┬┴╙╔├ ╥╧═
┬IT 1 - 0=╥┴═, 1=╦ERNAL ╥╧═
┬IT 2 - 0=├HARACTER SET ╥╧═,
1=╔/╧ PORTS
┬ITS 3-5 - ├ASSETTE CONTROL LINES
┬ITS 6-7 - ╒NCONNECTED
$02-$03 ╟╨╬╘1 ╟ENERAL POINTER, USUALLY USED TO PASS A
PARAMETER TO A ╦ERNAL ROUTINE.
$04-$05 ╟╨╬╘2 ╟ENERAL POINTER
$04 ╘╥┴├╦ ╘RACK NUMBER FOR DISK OPERATIONS
$05 ╙┼├╘╧╥ ╙ECTOR NUMBER FOR DISK OPERATIONS
$05 ╥╧╫ ╥OW TO PRINT TEXT ON
$06-$0┬ ┬╧╪╙╔┌ ┬OX SIZE DESCRIPTOR
$06 ┬╪╘╧╨ ╘OP ROW OF A BOX
$07 ┬╪┬╧╘ ┬OTTOM ROW OF A BOX
$08-$09 ┬╪╠┼╞╘ ╠EFT MARGIN OF A BOX
$0┴-$0┬ ┬╪╥╔╘┼ ╥IGHT MARGIN OF A BOX
$0├-$0─ ─╔╥╨╬╘ ─IRECTORY ENTRY POINTER, RETURNED BY
LOOKUP. ┴LSO USED AS THE DESTINATION
INDIRECT POINTER FOR HIRES GRAPHIC
OPERATIONS.
$0┼-$0╞ ╞╔╠╨╬╘ ╞ILENAME POINTER, USED TO POINT TO A
FILE NAME FOR FILE OPERATIONS. ┴LSO USED
AS THE SOURCE INDIRECT POINTER FOR HIRES
GRAPHIC OPERATIONS.
$10 ╙╟╘┘╨┼ ╙ELECTED ╟┼╧╙ FILE TYPE; USED BY ╘┴┬╠┼
$11 ═┴╪╞╔╠ ═AXIMUM NUMBER OF FILES TO FIND; USED BY
TABLE
$12-$13 ╘EMPORARY STORAGE AREAS
$14-$15 ─╔╥╨╘2 ┴LTERNATE DIRECTORY ENTRY POINTER,
USUALLY POINTS TO $8400. ┴LSO USED TO
POINT TO A FILE'S INFO SECTOR WHEN IT IS
IN MEMORY.
$16 ─╨┴╟┼ ╬UMBER OF DIRECTORY SECTORS TO SKIP
BEFORE FINDING A HOLE IN THE DIRECTORY;
USED BY FILE SAVE ROUTINES AND ╚╧╠┼.
┴LSO USED AS A PARAMETER VALUE TO BE
PASSED TO PROGRAMS. ├OULD BE ─┼╙╦╘╧╨'S
PAGE NUMBER.
$16-$17 ├╠┴╙╙╨ ╨OINTER TO CLASS STRING; USED BY ╘┴┬╠┼
$18-$19 ├╧╠╒═╬ ├OLUMN TO PRINT TEXT IN
$20-$21 ╒NUSED
$22-$23 ╨┴╘┼╥╬ ╨OINTER TO FILL PATTERN DATA
$24-$25 ╔╬╨╨╬╘ ╨OINTER TO INPUT BUFFER
$26-$2┼ ╞╧╬╘─╘ ├URRENT FONT DATA TABLE. ╙EE ╞ONT ╞ILE
╞ORMAT FOR A COMPLETE DESCRIPTION OF
THIS HEADER INFORMATION.
$26 ╨╠╔╬┼ ╬UMBER OF PIXELS ABOVE LINE OF PRINT.
╒NDERLINING APPEARS 1 PIXEL BELOW THE
LINE OF PRINT.
$27-$28 ┬╙╠┼╬ ╬UMBER OF BYTES IN THE FONT'S BIT
STREAMS
$29 ╨╙╔┌┼ ╨OINT SIZE OF THE FONT
═EMORY ═AP 6-2
$2┴-$2┬ ┬╙╨╬╘╙ ┴DDRESS OF BIT STREAM INDICES TABLE
$2├-$2─ ┬╙╨╬╘ ┴DDRESS OF THE FIRST BIT STREAM
$2┼ ╙╘┘╠┼ ─EFINES THE CURRENT PRINT STYLE
┬IT 7 - ╒NDERLINE
┬IT 6 - ┬OLDFACE
┬IT 5 - ╥EVERSED VIDEO
┬IT 4 - ╔TALICS
┬IT 3 - ╧UTLINE
$2╞ ╙├╬╞╠╟ ├ONTROLS THE SOURCE AND DESTINATION
SCREENS, USED BY ╥╧╫┴─╥. ┬ITS 6 & 7 ARE
USED TO DETERMINE THE SOURCE AND
DESTINATION SCREENS AS FOLLOWS:
7 6 $0├-$0─ $0┼-$0╞
0 0 ┴╞00 ┴╞00 (═╔─╙├╥┼┼╬)
0 1 2 1
1 0 1 1
1 1 1 2
╔F BIT 5 IS SET, THEN ONLY SCREEN 1 IS
USED FOR TEXT (═ODE 10).
$30 ═╙╞╠┴╟ ═OUSE CONTROL FLAG
┬IT 7 - ═OUSE IS NOT VISIBLE
┬IT 6 - ┼NABLE CHECKING MOUSE'S
POSITION AGAINST CURRENT
MENU LIMITS.
┬IT 5 - ┼NABLE CHECKING MOUSE'S
POSITION AGAINST CLICK BOX
TABLE.
$31-$32 ═╙╨╬╘ ╨OINTER TO THE SPRITE DATA FOR THE
DEFAULT MOUSE, USUALLY $84├1
$33 ╘╧╨═ ╘OP MARGIN, USUALLY 0 (╘OP OF SCREEN)
$34 ┬╧╘═ ┬OTTOM MARGIN, USUALLY 199 (┬OTTOM OF
SCREEN)
$35-$36 ╠┼╞╘═ ╠EFT MARGIN
$37-$38 ╥╔╟╚╘═ ╥IGHT MARGIN, IF AN ATTEMPT IS MADE TO
PRINT TEXT PAST THIS COLUMN, CONTROL
PASSES THROUGH $84┴┬.
$39 ╔╬╨╞╠╟ ╔NPUT CONTROL FLAGS
┬IT 7 - ╘HERE IS DATA IN THE
KEYBOARD BUFFER
┬IT 6 - ╔NPUT DEVICE HAS CHANGED
DIRECTION
┬IT 5 - ┬UTTON STATUS HAS CHANGED
$3┴-$3┬ ═╧╒╙┼╪ ═OUSE'S ╪ POSITION
$3├ ═╧╒╙┼┘ ═OUSE'S ┘ POSITION
$3╞-$40 ├┬╨╬╘ ╨OINTER TO CLICK BOX DATA TABLE
$41-$42 ╩═╨╓┼├ ╩UMP VECTOR USED BY ╔╬─╩═╨
$43-$44 ╫╔╬╨╬╘ ╨OINTER USED BY ╫╔╬─╧╫ TO POINT TO THE
WINDOW DESCRIPTOR BLOCK.
$8┼ ╘HE LEAST SIGNIFICANT 3 BITS OF LOCATION
$──00, USED BY SERIAL COMMUNICATIONS
ROUTINES. ╘HESE THREE BITS REPRESENT THE
╓╔├ MEMORY BANK NUMBER AND THE ╥╙-232
OUTPUT LINE.